8320. Заглавная строка

 

Одна из распространённых задач обработки текстов преобразование первой буквы каждого слова в строке в заглавную.

В этой задаче необходимо выполнить такое преобразование.

 

Вход. Строка состоит из слов, написанных строчными буквами латинского алфавита (a z). Слова разделены одним или несколькими пробелами. Длина строки не превышает 50 символов.

 

Выход. Выведите строку, идентичную входной, в которой первая буква каждого слова преобразована в заглавную.

 

Пример входа

Пример выхода

intro  to     algo

Intro  To     Algo

 

 

РЕШЕНИЕ

строки

 

Анализ алгоритма

Первую букву слова можно определить следующим образом:

·        если первый символ строки является буквой, его следует преобразовать в верхний регистр;

·        если текущий символ является буквой и непосредственно перед ним находится пробел, то этот символ также следует преобразовать в верхний регистр;

 

Реализация алгоритма

Объявим рабочую строку.

 

string s;

 

Читаем входную строку.

 

getline(cin,s);

 

Если первый символ строки не является пробелом, его следует преобразовать в заглавную букву.

 

if (s[0] != ' ') s[0] = toupper(s[0]);

 

Если текущий символ является буквой и перед ним находится пробел, его также следует преобразовать в заглавную букву.

 

  for(int i = 1; i < s.size(); i++)

    if (s[i] != ' ' && s[i-1] == ' ')

      s[i] = toupper(s[i]);

 

Выводим результирующую строку.

 

cout << s << endl;

 

Реализация алгоритма – char массив

Объявим символьный массив.

 

char s[100];

 

Читаем входную строку.

 

gets(s);

 

Если первый символ строки не является пробелом, его следует преобразовать в заглавную букву.

 

if (s[0] != ' ') s[0] = toupper(s[0]);

 

Если текущий символ является буквой и перед ним находится пробел, его также следует преобразовать в заглавную букву.

 

for(i = 1; i < strlen(s); i++)

  if (s[i] != ' ' && s[i-1] == ' ') s[i] = toupper(s[i]);

 

Выводим результирующую строку.

 

puts(s);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    char s[] = con.nextLine().toCharArray();

    if (s[0] != ' ') s[0] = Character.toUpperCase(s[0]);

   

    for(int i = 1; i < s.length; i++)

      if (s[i] != ' ' && s[i-1] == ' ')

        s[i] = Character.toUpperCase(s[i]);

 

    System.out.println(String.valueOf(s));

    con.close();

  }

}

 

Python реализация

Читаем входную строку.

 

s = input()

 

Функция title() используется для преобразования первой буквы каждого слова в строке в заглавную (верхний регистр), а остальные буквы становятся строчными (нижний регистр).

Выводим результирующую строку.

 

print(s.title())